package model

import (
	"time"
)

// Post 文章模型 - 对应 bg_posts 表
type Post struct {
	ID         int64     `gorm:"primaryKey;autoIncrement" json:"id"`
	Author     int       `gorm:"column:author;not null;default:0" json:"author"`
	PostType   int       `gorm:"column:post_type;not null;default:0" json:"post_type"`
	Title      string    `gorm:"column:title;size:64;not null" json:"title"`
	Content    string    `gorm:"column:content;type:text;not null" json:"content"`
	ReadNum    int       `gorm:"column:read_num;not null;default:0" json:"read_num"`
	IsPrivate  int       `gorm:"column:is_private;not null;default:0" json:"is_private"`
	IsShow     int       `gorm:"column:is_show;not null;default:1" json:"is_show"`
	IsRemark   int       `gorm:"column:is_remark;not null;default:1" json:"is_remark"`
	IsTemp     int       `gorm:"column:is_tmpe;not null;default:0" json:"is_temp"` // 注意：数据库字段名是 is_tmpe
	IsStar     int       `gorm:"column:is_star;not null;default:0" json:"is_star"`
	AddTime    time.Time `gorm:"column:add_time;autoCreateTime" json:"add_time"`
	UpdateTime time.Time `gorm:"column:update_time;autoUpdateTime" json:"update_time"`
}

// TableName 指定表名
func (Post) TableName() string {
	return "bg_posts"
}

// PostListData 文章列表数据
type PostListData struct {
	Lists       map[int64]PostDataSimple `json:"lists"`
	PageNum     int                      `json:"page_num"`
	DataNum     int                      `json:"data_num"`
	CurrentPage int                      `json:"current_page"`
	PageSize    int                      `json:"page_size"`
}

// PostDataSimple 文章数据（简化版）
type PostDataSimple struct {
	ID         int64     `json:"id"`
	Title      string    `json:"title"`
	Content    string    `json:"content"`
	TypeID     int       `json:"type_id"`
	TypeName   string    `json:"type_name"`
	IsTemp     int       `json:"is_temp"`
	IsShow     int       `json:"is_show"`
	IsPrivate  int       `json:"is_private"`
	Tags       []string  `json:"tags"`
	ReadCount  int       `json:"read_count"`
	CreateTime time.Time `json:"create_time"`
}

// NewPostList 最新文章列表
type NewPostList struct {
	ID    int64  `json:"id"`
	Title string `json:"title"`
}
